home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
501-525
/
disk_511
/
less
/
src
/
ttyin.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
1KB
|
74 lines
/*
* Routines dealing with getting input from the keyboard (i.e. from the user).
*/
#ifdef AMIGA
/* Compile with -HPreHeader.q to get "less.h"! */
#else
#include "less.h"
#endif
/*
* The boolean "reading" is set true or false according to whether
* we are currently reading from the keyboard.
* This information is used by the signal handling stuff in signal.c.
* {{ There are probably some race conditions here
* involving the variable "reading". }}
*/
public int reading;
#ifndef AMIGA
static int tty;
#endif
/*
* Open keyboard for input.
* (Just use file descriptor 2.)
*/
#ifdef __STDC__
void open_getchr (void)
#else
public void
open_getchr()
#endif
{
#ifdef AMIGA
ttopen();
#else
tty = 2;
#endif
}
/*
* Get a character from the keyboard.
*/
#ifdef __STDC__
int getchr (void)
#else
public int
getchr()
#endif
{
char c;
int result;
reading = 1;
do
{
flush();
#ifdef AMIGA
c = ttgetc();
result = 1;
#else
result = read(tty, &c, 1);
#endif
} while (result != 1);
reading = 0;
#ifdef EIGHTBIT
return (int) c;
#else
return (c & 0177);
#endif
}